Ultrasound wands have become commonplace in hospitals and other medical facilities. The ultrasound wand is usually part of a diagnostic system that allows a physician to employ noninvasive imaging techniques to view internal organs and so forth. Ultrasonic wand (like many other applications) produces a large quantity of data that is generally processed in near real-time to generate useful results. To do this, the corresponding electronics within the system (e.g., ultrasonic diagnostic system) tend to be complicated and may be specific to a measuring instrument (e.g., ultrasonic wand).
Turning to FIG. 1, an example of a portion of an ultrasonic imaging system 100 can be seen. As shown in this example, transducers 102 (i.e., within an ultrasonic wand) are able to generate imaging data from a target (e.g., patient) for the analog front end (AFE) 104. The AFE 104 generally includes analog-to-digital converters (ADCs), amplifiers, and other components used for digitization. There may, for example, be eight output channels from the AFE 104. The digitized output from the AFE 104 can then be applied to a discrete cosine transform (DCT) circuit 106 (which can be referred to as an input circuit with AFE 104 and/or transducers 102), and the output from DCT circuit 106 can then be applied to the compression circuit 107. This compression circuit 107 is generally comprised of a wavelet tree formed of packet transformation circuits 108-1 to 108-N, which can compress the digitized image data or signals. This compressed signal or signals from compression circuit 107 can then be quantized and serialized by circuit 110 to as to provide serial data over the output channel to, for example, double data rate (DDR) synchronous dynamic random access memory (SDRAM).
Typically, the packet transformation circuits 108-1 to 108-N (which can be seen in greater detail in FIG. 2 and is labeled 108) perform filtering operations on incoming data streams. The packet transform circuit 108 is typically formed of a “wavelet tree” that includes cascaded analysis circuits 112-1,1 to 112-D,2D. For this example, there are D levels for the wavelet tree. Each of these analysis circuits 112-1,1 to 112-D,2D (which can be seen in greater detail in FIG. 3 and is labeled 112) includes filters 202 and 206 (which can be represented by functions H(z) and G(z), respectively), decimators or downsamplers 204 and 208, and multiplexer 210. In this configuration, each filter 202 and 206 generates one output, filtered sample for every two input samples, meaning that the filters 202 and 206 are alternated between adjacent samples. These filters 202 and 206 can, for example, be quadrature mirror filters or a finite impulse response (FIR) filters having several (e.g., 10) taps. The outputs are then downsampled or decimated (e.g., by 2) with decimators 204 and 208 and multiplexed with multiplexer 210. Descriptions of such implementations can be found in U.S. Patent Pre-Grant Publ. Nos. 2011/0096621 and 2011/0222791, where each is incorporated by reference for all purposes.
One issue with system 100 (and packet transform circuit 108 in particular) is that the shape of the wavelet tree can vary depending on the configuration of the transducers 102 (e.g., wand). In other words, to achieve desirable or optimal performance, the shape of wavelet tree (of packet transform circuit 108) is varied to accommodate the transducers 102 (e.g., wand). In FIGS. 4 and 5, two example shapes or configurations for the wavelet tree of packet transform circuit 108 (which are labeled 108-A and 108-B, respectively) can be seen. As shown, circuit 108-A is a full wavelet tree, while circuit 108-B is a partial tree. Conventionally, this is achieved by building hardware structures (i.e., wavelet trees) that correspond to each set of transducers 102 (e.g., wand) so as to reduce hardware overhead. It would be desirable to have a programmable compression circuit 107, but this has not yet been achieved largely because of the difficulty in “aligning” output data from the wavelet trees for a large number of partial tree configurations.
Therefore, there is a need for a programmable wavelet tree.